Network backup of computing devices is becoming more and more commonplace in today's work environments. With this technology, a user's computer is periodically backed up to a central server in the background when the device is connected to a network. Often, this can be performed without interruption to the user and without the user being aware of the backup being performed. When a need arises to restore the desktop, the backup copy of the desktop can be retrieved from the server and installed onto a computing device. For example, the backup copy of the desktop can be installed on a new device in the event of device loss, breakage, or migration to a new device. Also, a backup copy of the desktop can be installed back to the same device; for example, to restore the device to a previous point in time, to perform repairs, and so on. As a result, an organization is able to save time and preserve valuable data and resources by continuously backing up employee computing devices over the network.
In many instances, a backup operation on a computing device is performed by taking a snapshot, i.e., capturing the state of the system at a particular point in time, and uploading disk contents to the server to ensure that the state of the system at the particular point in time is available on the server. Generally, the transfer of data to the server only includes the transfer of data that has changed from a previous backup. Further, in cases where a single instance store and data deduplication is implemented on the server, files may not need to be transferred if they are already present on the server, e.g., from the backup of another client.
Nonetheless, in many cases, a backup operation can involve transfer of large amounts of data, which can take a long time particularly when network conditions are suboptimal. For example, such scenarios are likely during an initial backup or “centralization,” where large amounts of data are generally transferred. Another scenario where a backup may require a long time is where the user of the device produces a lot of data, for example, if the user is a developer. In yet another scenario, a backup may require a long time if the device has not been backed up for a long time, for example, if the user has not had access to a network. In these cases, and others, numerous issues can arise due to lengthy backup operations.
For example, in many standard systems, during the upload of data from the client to the server, write operations on the client device are performed copy-on-write. Namely, to ensure consistency, a system backup needs to represent the contents of the device frozen in time. Hence, after the snapshot is captured, any changes to a file are made copy-on-write by writing changes to a copy of the file data, thereby preserving the state of the file and the system as they were when the snapshot was captured. Accordingly, all write operations continue to be copy-on-write until the backup is complete. As result, in situations where the backup takes a long time and the user is active on the device, significant volumes of copy-on-write data is produced, consuming valuable system resources and potentially causing the system to run out of space. Further, in many cases, once the copy-on-write data exceeds a certain volume, the operating system will dump the snapshot, aborting the backup process and any progress made, and forcing the system to restart the backup operation anew.
A more efficient approach is desirable for managing client device backups in enterprise network environments.